package com.whminwei.edu.api.dc.client;

import com.whminwei.common.exception.ServiceException;
import com.whminwei.common.http.rspn.FullHttpResponse;
import com.whminwei.edu.api.dc.dto.fspn.school.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * 校务服务数据获取接口
 * 包含学校基础、校区、校内机构、合作单位
 * 用于数据中心主动或周期性向xzzg-school-service获取数据
 *
 *
 * @author zhangjq
 * @since 2024-04-22
 */
@FeignClient(name = "xzzg-pt-school-service", contextId = "datacenter-school", configuration = FullHttpResponse.class)
public interface DcSchoolClient {

    /**
     * 获取学校信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.school.dto.fspn.DcSchoolFspn>
     * @author zhangjq
     * @since 2024-04-22
     */
    @PostMapping("/datacenter/getSchoolInfo")
    FullHttpResponse<DcSchoolFspn> getSchoolInfo() throws ServiceException;

    /**
     * 获取校区列表
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.school.dto.fspn.DcCampusFspn>
     * @author zhangjq
     * @since 2024-05-10
     */
    @PostMapping("/datacenter/getCampusList")
    FullHttpResponse<DcCampusFspn> getCampusList() throws ServiceException;

    /**
     * 获取校内组织机构列表
     * 不包含教学系部
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.school.dto.fspn.DcIntlOrgRspn>
     * @author zhangjq
     * @since 2024-05-10
     */
    @PostMapping("/datacenter/getIntlOrgList")
    FullHttpResponse<DcIntlOrgFspn> getIntlOrgList();

    /**
     * 获取教学系部列表
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.school.dto.fspn.DcIntlOrgRspn>
     * @author zhangjq
     * @since 2024-05-10
     */
    @PostMapping("/datacenter/getTchDeptList")
    FullHttpResponse<DcIntlOrgFspn> getTchDeptList();

    /**
     * 获取合作单位列表
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.school.dto.fspn.DcPartnerFspn>
     * @author zhangjq
     * @since 2024-05-13
     */
    @PostMapping("/datacenter/getPartnerList")
    FullHttpResponse<DcPartnerFspn> getPartnerList();

    /**
     * 获取校历列表
     * @author wangy
     * @since 14:02 2024/8/2
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.school.DcCalendarFspn>
     **/
    @PostMapping("/datacenter/getCalendarList")
    FullHttpResponse<DcCalendarFspn> getCalendarList();

    /**
     * 获取作息时间信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.school.DcDailySchedFspn>
     * @author zhangjq
     * @since 2024-11-04
     */
    @PostMapping("/datacenter/getDailySchedList")
    FullHttpResponse<DcDailySchedFspn> getDailySchedList();

}
